Points, lines, planes, and spheres of all dimensions can be used to describe basic objects or components. These basic objects can be assembles into more complex objects. Therefore, the manipulation and proximity testing of the basic objects has wide-ranging implications for many problems in engineering, computer graphics, and the practical sciences.
For example, in robotics and many haptic devices, a tool is typically composed of rigid links connected to each other at joints. The possible positions of the distal end of each link, assuming complete rotational freedom at the joints, is of course a sphere, see U.S. Pat. Nos. 6,070,109, 6,064,168, and 5,973,678.
In order to check for interference with an obstacle in the vicinity of the tool, one can first check to see if bounding spheres intersects. This is a much simpler computation than determining exactly the coordinates of all of the individual parts. Only when the bounding spheres intersect does it become necessary to do the more rigorous computation on the exact coordinates to determine actual interference.
In rigid body kinematics and CAD/CAM, a frequent problem is to check for collisions between arbitrarily shaped objects, see U.S. Pat. Nos. 6,054,997 and 5,943,065. This problem can also be simplified by first circumscribing each object with a bounding sphere. Now, one can first simply check for collisions between spheres, and only when there is a possible collision of spheres does one have to do the more complex computation to check for actual collision.
In graphics rendering, it is common to parametrically represent objects as polygons or Bezier surface patches. Frequently, it is necessary to rotate objects. The rotation of a complex object can simply be done by rotating points on the patches (planes) along spherical surfaces having their origin at the center of rotation.
In fluid dynamnics, and electrostatic problems, one frequently manipulates angle preserving conformal surfaces, see U.S. Pat. No. 5,453,934. In higher dimensional geometries, a conformal surface can be represented by spherical rotation. Clearly, operations with a spherical surface would be much easier than operating on a complex surface such an airfoil.
In a Cartesian model of Euclidean space, the calculations performed on spheres are generally of the form:Operator((x+hl)2+(y+il)2+(z+jl)−rl2,(x+h2)2+(y+i2)2+(z+j2)−r22) where “Operator” represents some spherical operation such as intersection, union, containment, tangent, translation, rotation, etc., and combinations thereof. In most of these application, event these simpler spherical computations, due their enormous numbers, still consume most of the system's resources when manipulating object models. Similar calculations can be performed on planes.
Therefore, it is desired to provide a new method for representing models of objects which solves these problems for practical modeling and simulation problems of physical objects. Furthermore, it desired to manipulate the models without having to consider the actual Cartesian coordinates of the underlying objects.